____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Computation Tree Logic
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
Die Computation Tree Logic (kurz CTL) ist eine temporale Logik, deren Modell der Zeit eine baumartige Struktur hat. Die zeitliche Γnderung von ZustΓ€nden und deren Eigenschaften wird durch Pfade innerhalb dieser Baumstruktur modelliert. Hierbei hat die Zukunft mehrere Pfade, wobei nicht festgelegt ist, welche letztendlich realisiert werden. Demnach kΓΆnnen Aussagen ΓΌber die mΓΆgliche Entwicklungen getroffen werden.
Die CTL wird zur Verifikation von Hard- und Software verwendet, ΓΌblicherweise von Model Checkern.
Zu der Familie der temporalen Logiken gehΓΆrt auch die linear temporale Logik (LTL), wobei hier nur eine Zukunft mΓΆglich ist. Eine Verallgemeinerung der beiden Logiken wird als CTL* bezeichnet.
Contents
β’ Syntax
β’ Semantik
β’ Literatur
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Syntax
Minimale Grammatik
Sei A P {\displaystyle AP} eine Menge von atomaren Aussagen (Behauptungen), dann ist jedes Element p β β A P {\displaystyle p\in AP} eine CTL-Formel. Sind Ο Ο {\displaystyle \phi } und Ο Ο {\displaystyle \psi } Formeln, dann auch Β¬ Β¬ Ο Ο {\displaystyle \neg \phi } , Ο Ο β¨ β¨ Ο Ο {\displaystyle \phi \lor \psi } , EX Ο Ο {\displaystyle {\text{EX}}\phi } , EG Ο Ο {\displaystyle {\text{EG}}\phi } und Ο Ο EU Ο Ο {\displaystyle \phi {\text{EU}}\psi } . Dies definiert die minimale Grammatik von CTL. In der Regel wird diese allerdings um die gΓ€ngigen booleschen Operatoren β§ β§ {\displaystyle \land } , βΉ βΉ {\displaystyle \implies } und β β {\displaystyle \Leftrightarrow } , sowie einigen weiteren temporalen Operatoren erweitert.
Temporale Operatoren
Die Erweiterung der minimalen Grammatik um folgende Operatoren erhΓΆht nicht die MΓ€chtigkeit der Sprache, da alle Operatoren durch Umformungen zurΓΌckgefΓΌhrt werden kΓΆnnen.
β’ Pfadoperatoren:
β’ A Ο Ο {\displaystyle A\phi } β auf allen Pfaden folgt Ο Ο {\displaystyle \phi } (englisch: All)
β’ E Ο Ο {\displaystyle E\phi } β auf mindestens einem Pfad folgt Ο Ο {\displaystyle \phi } (englisch: Exists)
β’ Pfad-spezifische Operatoren:
β’ X Ο Ο {\displaystyle X\phi } β unmittelbar folgt Ο Ο {\displaystyle \phi } (englisch: neXt state)
β’ F Ο Ο {\displaystyle F\phi } β irgendwann folgt Ο Ο {\displaystyle \phi } (englisch: some Future state oder Finally)
β’ G Ο Ο {\displaystyle G\phi } β auf dem folgenden Pfad folgt in jedem Zustand Ο Ο {\displaystyle \phi } (englisch: Globally)
β’ Ο Ο U Ο Ο {\displaystyle \phi U\psi } β Ο Ο {\displaystyle \phi } folgt bis zum Erreichen des Zustands Ο Ο {\displaystyle \psi } (englisch: Until)
β’ Ο Ο W Ο Ο {\displaystyle \phi W\psi } β Ο Ο {\displaystyle \phi } folgt immer oder bis zum Erreichen des Zustands Ο Ο {\displaystyle \psi } (englisch: Weak Until)
Pfad und pfad-spezifische Operatoren kΓΆnnen miteinander kombiniert werden, sodass sich beispielsweise folgende Formeln ergeben:
β’ E X Ο Ο {\displaystyle EX\phi } β in (mind.) einem nΓ€chsten Zustand gilt Ο Ο {\displaystyle \phi }
β’ E F Ο Ο {\displaystyle EF\phi } β in (mind.) einem der folgenden ZustΓ€nde gilt Ο Ο {\displaystyle \phi }
β’ E G Ο Ο {\displaystyle EG\phi } β es gibt (mind.) einen Pfad, so dass Ο Ο {\displaystyle \phi } entlang des ganzen Pfades gilt
β’ E [ Ο Ο U Ο Ο ] {\displaystyle E[\phi U\psi ]} β es gibt einen Pfad, fΓΌr den gilt: bis zum ersten Auftreten von Ο Ο {\displaystyle \psi } gilt Ο Ο {\displaystyle \phi }
β’ A X Ο Ο {\displaystyle AX\phi } β in jedem nΓ€chsten Zustand gilt Ο Ο {\displaystyle \phi }
β’ A F Ο Ο {\displaystyle AF\phi } β man erreicht immer einen Zustand, in dem Ο Ο {\displaystyle \phi } gilt
β’ A G Ο Ο {\displaystyle AG\phi } β auf allen Pfaden gilt in jedem Zustand Ο Ο {\displaystyle \phi }
β’ A [ Ο Ο U Ο Ο ] {\displaystyle A[\phi U\psi ]} β es gilt immer Ο Ο {\displaystyle \phi } bis zum ersten Auftreten von Ο Ο {\displaystyle \psi }
Semantik
CTL Formeln werden ΓΌber Transitionssysteme definiert. FΓΌr eine gegebene Folge von ZustΓ€nden des Systems T ( s 0 ) = s 0 , s 1 , β¦ β¦ {\displaystyle T(s_{0})=s_{0},s_{1},\ldots } (beginnend in Zustand s 0 {\displaystyle s_{0}} ) sind die Operatoren formal wie folgt definiert, dabei steht T ( s 0 ) β¨ β¨ Ο Ο {\displaystyle T(s_{0})\models \phi } fΓΌr T ( s 0 ) {\displaystyle T(s_{0})} erfΓΌllt Ο Ο {\displaystyle \phi } :
β’ T ( s 0 ) β¨ β¨ Β¬ Β¬ Ο Ο β β T ( s 0 ) β Ο Ο {\displaystyle T(s_{0})\models \neg \phi \quad \Leftrightarrow \quad T(s_{0})\not \models \phi }
β’ T ( s 0 ) β¨ β¨ Ο Ο β¨ β¨ Ο Ο β β T ( s 0 ) β¨ β¨ Ο Ο oder T ( s 0 ) β¨ β¨ Ο Ο {\displaystyle T(s_{0})\models \phi \lor \psi \quad \Leftrightarrow \quad T(s_{0})\models \phi {\text{ oder }}T(s_{0})\models \psi }
β’ T ( s 0 ) β¨ β¨ E X Ο Ο β β T ( s 1 ) β¨ β¨ Ο Ο {\displaystyle T(s_{0})\models EX\phi \quad \Leftrightarrow \quad T(s_{1})\models \phi }
β’ T ( s 0 ) β¨ β¨ E G Ο Ο β β β β i : T ( s i ) β¨ β¨ Ο Ο {\displaystyle T(s_{0})\models EG\phi \quad \Leftrightarrow \quad \forall i:T(s_{i})\models \phi }
β’ T ( s 0 ) β¨ β¨ Ο Ο E U Ο Ο β β β β k : T ( s k ) β¨ β¨ Ο Ο β§ β§ β β i < k : T ( s i ) β¨ β¨ Ο Ο {\displaystyle T(s_{0})\models \phi EU\psi \quad \Leftrightarrow \quad \exists k:T(s_{k})\models \psi \land \forall i<k:T(s_{i})\models \phi }
Die oben genannten Umformungen erlauben es, Formeln ineinander umzuwandeln.
β’ Β¬ Β¬ A Ο Ο β‘ β‘ E Β¬ Β¬ Ο Ο {\displaystyle \neg A\phi \equiv E\neg \phi }
β’ Β¬ Β¬ A F Ο Ο β‘ β‘ E G Β¬ Β¬ Ο Ο {\displaystyle \neg AF\phi \equiv EG\neg \phi }
β’ Β¬ Β¬ E F Ο Ο β‘ β‘ A G Β¬ Β¬ Ο Ο {\displaystyle \neg EF\phi \equiv AG\neg \phi }
β’ Β¬ Β¬ A X Ο Ο β‘ β‘ E X Β¬ Β¬ Ο Ο {\displaystyle \neg AX\phi \equiv EX\neg \phi }
β’ A G Ο Ο β‘ β‘ Ο Ο β§ β§ A X A G Ο Ο {\displaystyle AG\phi \equiv \phi \land AXAG\phi }
β’ E G Ο Ο β‘ β‘ Ο Ο β§ β§ E X E G Ο Ο {\displaystyle EG\phi \equiv \phi \land EXEG\phi }
β’ A F Ο Ο β‘ β‘ Ο Ο β¨ β¨ A X A F Ο Ο {\displaystyle AF\phi \equiv \phi \lor AXAF\phi }
β’ E F Ο Ο β‘ β‘ Ο Ο β¨ β¨ E X E F Ο Ο {\displaystyle EF\phi \equiv \phi \lor EXEF\phi }
β’ A [ Ο Ο U Ο Ο ] β‘ β‘ Ο Ο β¨ β¨ ( Ο Ο β§ β§ A X A [ Ο Ο U Ο Ο ] ) {\displaystyle A[\phi U\psi ]\equiv \psi \lor (\phi \land AXA[\phi U\psi ])}
β’ E [ Ο Ο U Ο Ο ] β‘ β‘ Ο Ο β¨ β¨ ( Ο Ο β§ β§ E X E [ Ο Ο U Ο Ο ] ) {\displaystyle E[\phi U\psi ]\equiv \psi \lor (\phi \land EXE[\phi U\psi ])}
Literatur
β’ Clarke, Grumberg, Peled: Model Checking. MIT Press, 2000, ISBN 0-262-03270-8
β’ Rohit Kapur: CTL for Test Information of Digital ICS. Springer, 2002, ISBN 978-1-4020-7293-2
β’ B. Berard, Michel Bidoit, Alain Finkel: Systems and Software Verification. Model-checking Techniques and Tools. Springer, 2001, ISBN 3-540-41523-8
β’ M. Huth and M. Ryan: Logic in Computer Science - Modelling and Reasoning about Systems. Cambridge, 2004, ISBN 0-521-54310-X